package de.mnit.basis.sys;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import de.mnit.basis.fehler.Fehler;
import de.mnit.basis.sys.Ausgabe;
import de.mnit.basis.sys.Sys;
import de.mnit.basis.sys.thread.A_AutoDaemon;

/**
 * @author Michael Nitsche
 * 21.09.2010	Erstellt
 */
public class EinmalStart {

	public static void main(String[] args) {
		try {
			boolean laeuft=EinmalStart.laeuftBereits(7666);
			Ausgabe.debug(laeuft);
			if(!laeuft)
				Sys.pauseSekunden(15);
		}
		catch(Throwable t) {
			Fehler.zeig(t);
		}
	}


	private static A_AutoDaemon daemon=null;

	public static boolean laeuftBereits(final int port) {
		if(daemon!=null)
			return false;
		try {
			//Bricht ab, wenn der Port bereits gesperrt ist!
			final ServerSocket ss = new ServerSocket(port);

			daemon=new A_AutoDaemon() {
				protected void wiederhole() {
					try {
						Socket s = ss.accept();
						s.close();
					}
					catch(IOException e) {
						Ausgabe.warnung("Verbindung beendet");
					}
				}
			};
			return false;
		}
		catch(IOException e) {
			return true;
		}
	}

}
